/*
 * Copyright 2018 JDCLOUD.COM
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *    http:#www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 * 
 * 
 *
 * 
 * Contact: 
 *
 * NOTE: This class is auto generated by the jdcloud code generator program.
 */


using System;
using System.Collections.Generic;
using System.Text;


namespace JDCloudSDK.Waf.Model
{

    /// <summary>
    ///  filterCfg
    /// </summary>
    public class FilterCfg
    {

        ///<summary>
        /// 序号,不作更新使用
        ///</summary>
        public int? Id{ get; set; }
        ///<summary>
        /// 请求位置 当匹配类型为&quot;str&quot;/&quot;regex&quot;/&quot;size&quot;时，可选字段：[&quot;headers&quot;/&quot;cookie&quot;/&quot;args&quot;/&quot;body&quot;/&quot;uri&quot;/&quot;method&quot;] | 匹配类型为&quot;SQLi&quot;/&quot;XSS&quot;时:可选字段：[&quot;headers&quot;/&quot;cookie&quot;/&quot;args&quot;/&quot;body&quot;/&quot;uri&quot;]|当匹配类型为&quot;geo&quot;/&quot;ip&quot;时，该字段为空
        ///</summary>
        public string PartOfReq{ get; set; }
        ///<summary>
        /// 指定key，匹配类型为&quot;geo&quot;/&quot;ip&quot;时，该字段为空,|  partOfReq为uri/body/method 时，该字段为空，header/cookie时非空，args时选填
        ///</summary>
        public string ReqKey{ get; set; }
        ///<summary>
        /// 匹配类型&quot;str&quot;时：[&quot;startsWith&quot;/&quot;endsWith&quot;/&quot;contains&quot;/&quot;equal&quot;]|匹配类型为&quot;geo&quot;/&quot;SQLi&quot;/&quot;XSS&quot;/&quot;regex&quot;时：&quot;&quot;|匹配类型为&quot;size&quot;时：[&quot;equal&quot;/&quot;notEquals&quot;/&quot;greaterThan&quot;/&quot;greaterThanOrEqual&quot;/&quot;lessThan&quot;/&quot;lessThanOrEqual&quot;]
        ///</summary>
        public string MatchLogic{ get; set; }
        ///<summary>
        /// // 匹配类型为&quot;SQLi&quot;/&quot;XSS&quot;时:&quot;&quot;，匹配类型为&quot;geo&quot;时:该值为省份名称。匹配类型为&quot;ip&quot;时，该值为 ipv4/8/16/24/32)/ipv6/64 ipv6/128)| 匹配类型为&quot;size&quot;时:数字字符串 其他类型不限
        ///</summary>
        public string ReqValue{ get; set; }
        ///<summary>
        /// 仅type为str regex SQLi XSS时可非空，取值&quot;&quot;,&quot;lowercase&quot;,&quot;trim&quot;,&quot;base64Decode&quot;,&quot;urlDecode&quot;,&quot;htmlDecode&quot;,&quot;hexDecode&quot;,&quot;sqlTrim&quot;按先后顺序，多个时用 , 分隔
        ///</summary>
        public string DecodeFunc{ get; set; }
        ///<summary>
        /// 不解码&quot;base64Decode&quot;解码,str时才有
        ///</summary>
        public string IsBase64Decode{ get; set; }
    }
}
